In the past, most computer processing took place on large mainframe computers. These large computers were known as multi-tasking computers because they would concurrently perform a large number of processes (or "jobs") and/or serve a large number of users. In 1971, the first commercially available microprocessors were developed by Intel Corporation. These microprocessors were considerably smaller than mainframe computers. Initially, microprocessors were operated in a single-tasking mode, meaning that they could perform only one job at a time. As new and more powerful microprocessors were developed, their use became widespread. Many of the tasks which were formerly performed by a single mainframe computer were delegated to numerous microcomputers.
In commerce and industry, the tasks performed by one microcomputer are often related to tasks performed by other microcomputers. In this case, it is often desirable or necessary for these independent microcomputers to share information and processing tasks. For example, a retail store might use five computers as cash registers and two other computers as inventory managers. Additionally, the store might have a single computer printer which is attached to one of the five computers (the "printer computer") which is used as a cash register. Such a store would find it desirable for all seven computers to share the single printer attached to the printer computer. It might also be desirable to track changes in inventory as sales are rung up on the cash register computers by having each cash register computer periodically communicate sales information to one or both of the inventory control computers.
This type of sharing and communication is typically accomplished by electronically connecting (or "networking") computers. The technology for implementing network communication is widely available. The difficulty with this technology lies in the single-tasking operation of many microcomputers. As the above example suggests, when a computer is networked to other computers, it is likely to receive requests from the other computers. For example, the printer computer might be constantly interrupted as the other computers request to use its printer. If the printer computer is a single-task machine, every time it receives a request to print from another computer, it will have to stop its own work (or "local task"), handle the print request, and then resume its local task. An operator using the printer computer for the local task would experience a delay while the computer handled the print request. This delay is sometimes referred to as a degradation in response time. As the number and complexity of the requests between computers in a network increases, single-tasking computers spend an increasing amount of time switching between local tasks and requests from remote computers. As a result response time degradates to unacceptable levels.